1. Field of the Invention
Aspects of this invention relate generally to software licensing, and more particularly to methods and apparatuses for authorizing certain features of a computer program for use with a product.
2. Description of Related Art
Computer programs operating with devices, such as communications network devices (for example, multi-device controllers, transcoders, event managers, and other equipment used in cable communication systems) and consumer appliances (for example, television sets, set-top boxes, and other processor-based consumer appliances), frequently include multiple features, such as basic and advanced/specialized features.
Computer program suppliers typically provide software licenses that specify the terms under which computer programs may be used, to limit revenue losses that may occur because of activities such as piracy and the re-use of computer programs on unlicensed devices. Nevertheless, computer programs are often used outside of the scope of software licenses. Moreover, because users of multi-featured computer programs typically have access to all of the features of the computer programs, computer program providers may not realize additional revenue when the computer programs are updated with new features and provided to licensed users.
Many software licensing management tools have been developed to increase compliance with software licenses, including but not limited to: copy protection schemes, which allow computer programs to be installed one time; node-locking techniques, which limit the use of computer programs to a single device; identification (“ID”)-based licensing, which allows the use of computer programs only by those inputting a specific user ID; site licensing, which allows the use of computer programs within a defined geographical area or network; floating licensing, which allows the use of computer programs in proportion to an amount paid for such usage, and time-based licensing, which allows the use of computer programs between specific start and end dates.
Existing tools for software licensing management, however, are generally insecure and inflexible, and do not provide specifically for the licensing of individual features of a computer program in both single- and multi-user environments.
There are, therefore, needs for methods and apparatuses for authorizing individual features of a computer program for use with a particular product, which methods and apparatuses are secure, and are able to flexibly handle multiple products, with multiple features, in both single- and multi-user environments.